#include "error.h"

void display(int error, char *buffer)
{
	switch(error)
	{
		case 1:
			strcpy(buffer, "Il manque un ;\n");
			break;

		case 2:
			strcpy(buffer, "Il manque une )\n");
                        break;

		case 3:
			strcpy(buffer, "Il manque soit une constante entiere, soit une constante reelle soit une chaine de caractere\n");
                        break;

		case 4:
			strcpy(buffer, "Il manque soit un end soit un ;\n");
                        break;

		case 5:
			strcpy(buffer, "Il manque un :=\n");
                        break;

		case 6:
			strcpy(buffer, "Il manque un =\n");
                        break;

		case 7:
			strcpy(buffer, "Il manque soit une constante entiere, soit une constante reelle, soit une constante caractere soit une chaine de caractere\n");
                        break;

		case 8:
			strcpy(buffer, "Il manque un identificateur\n");
                        break;

		case 9:
			strcpy(buffer, "Il manque un :\n");
                        break;

		case 10:
			strcpy(buffer, "Erreur sur le type d'une operande\n");
                        break;

		case 11:
			strcpy(buffer, "Il manque un begin\n");
                        break;

		case 12:
			strcpy(buffer, "Il ne doit pas y avoir de code après end.\n");
                        break;

		case 13:
			strcpy(buffer, "Il manque un . à la fin du end\n");
                        break;

		case 14:
			strcpy(buffer, "Il manque un end ou un ;\n");
                        break;

		case 15:
			strcpy(buffer, "Il manque une )\n");
                        break;

		case 16:
			strcpy(buffer, "Il manque un separateur\n");
                        break;

		case 17:
			strcpy(buffer, "Il manque un ) ou une ,\n");
                        break;

		case 18:
			strcpy(buffer, "Le mot clef 'program' est manquant\n");
                        break;

		case 19:
			strcpy(buffer, "Le mot clef 'do' est manquant à la fin de la condition\n");
			break;

		case 20:
			strcpy(buffer, "Il manque une operande logique\n");
                        break;

		case 21:
			strcpy(buffer, "Il manque un 'then'\n");
                        break;

		case 22:
			strcpy(buffer, "Le bloc des constantes est deja declare\n");
                        break;

		case 23:
			strcpy(buffer, "Le bloc des variables est deja declare\n");
                        break;

		case 24:
			strcpy(buffer, "Invalide bloc\n");
                        break;
	
		case 25:
			strcpy(buffer, "Les parametres de la fonction sont incorrectes\n");
                        break;
	
		case 26:
                        strcpy(buffer, "Les parametres de la procédure sont incorrectes\n");
                        break;

		case 27:
			strcpy(buffer, "Le type de retour de la fonction est incorrecte\n");
			break;

		case 28:
                        strcpy(buffer, "Le return de la fonction est manquant\n");
                        break;
		
		case 29:
			strcpy(buffer, "Le to de la boucle for est manquant\n");
                        break;

		case 30:
			strcpy(buffer, "L'initialisation de la boucle for necessite un entier ou un reel\n");
                        break;

		case 31:
                        strcpy(buffer, "Il manque un identificateur\n");
                        break;

		case 32:
                        strcpy(buffer, "L'identificateur est deja declare\n");
                        break;

		case 33:
                        strcpy(buffer, "Il manque une affectation ou une parenthese pour symboliser une fonction\n");
                        break;

		case 34:
                        strcpy(buffer, "La variable n'est pas declaree\n");
                        break;

		case 35:
                        strcpy(buffer, "On ne peut pas affecter une valeur a une constante\n");
                        break;

		case 36:
                        strcpy(buffer, "Erreur de else dans la condition if\n");
                        break;

		case 37:
                        strcpy(buffer, "Erreur lors de l'execution du p_code\n");
                        break;

		case 38:
                        strcpy(buffer, "Erreur dans la boucle for\n");
                        break;

		case 39:
                        strcpy(buffer, "Erreur dans la boucle while\n");
                        break;

		case 40:
                        strcpy(buffer, "Erreur sur la condition\n");
                        break;

		case 41:
                        strcpy(buffer, "Erreur sur l'operation\n");
                        break;

		case 42:
                        strcpy(buffer, "Affectation impossible: incompatibilite de type\n");
                        break;

		case 43:
                        strcpy(buffer, "Une procedure ne renvoit pas de valeur\n");
                        break;

		case 44:
                        strcpy(buffer, "Operation logique ou arithmetique inconnue\n");
                        break;

		case 45:
                        strcpy(buffer, "Les donnees tappees ne correspondent pas au type defini\n");
                        break;

		case 46:
                        strcpy(buffer, "Le compteur ordinal n'est pas initialise\n");
                        break;

		case 47:
                        strcpy(buffer, "Le fichier pcode n'est pas charge\n");
                        break;

		default:
			strcpy(buffer, "Erreur non définie!\n");
			break;
	}
}
